import axios from "axios";
import {MessageBox, Message } from 'element-ui' //在js文件中，需单独引入提示

const server = axios.create({
    baseURL:'https://lianghj.top:8888/api/private/v1', //线上接口
    timeout:6000
})

// 添加请求拦截器
server.interceptors.request.use(config => {
    let token=localStorage.getItem('token')
    if(token){
       config.headers.Authorization=token
    }
    return config 
}, error => {
    Promise.reject(error)
})


// 添加响应拦截器
server.interceptors.response.use(function (res) {
    // console.log('响应数据',response);

     //如何处理token过期问题？1.需要后台响应值告诉你，一般后台会自定义一个状态码40001,或者返回无效token,token过期等 2.提醒用户登录过期,返回登录页面
      console.log('响应数据',res);
   let code=res.data.meta.status
   let msg=res.data.meta.msg
   if(msg=="无效token"){
    MessageBox.confirm('token过期是否跳转登录页?', '提示', {
        confirmButtonText: '确定',
        cancelButtonText: '取消',
        type: 'warning'
      }).then(() => {
          location.href="/loginName"
      }).catch(() => {
             
      })
   }
      

  //处理常见错误状态码 - 
  else if (code === 400|| code === 401 || code === 403|| code === 404|| code === 500) {
    Message.warning({
      duration:1000,
      message:msg
  })
 }  else if (code === 200|| code === 201  ) {
  Message.success({
    duration:1000,
    message:msg
})
}



    // 对响应数据做点什么
    return res.data;
  }, error=>{
     //处理接口错误请求，响应错误-一般都是网络问题，进行处理
    // 对响应错误做点什么

    let {message}=error
    console.log(59,message); //解构出错误信息

    
    if (message == " Error") {
        message = "后端接口连接Network异常";
      }
  
      if(message.includes('timeout')){
        message = "系统接口请求超时";
      }
  
      Message.error({
        duration:1000,
        message:message
    })


     Promise.reject(error);

  });

export default server